It is often more difficult to review programs written, for example, in Java (trademark of Sun Microsystems Inc.) than programs written in COBOL and etc. This might be because the reviewer's skill for Java is poor. However, this is mainly because mathematical expressions and syntaxes in COBOL are represented by method invocations, accordingly the programs in Java are difficult to read. For example, “WK_OUTOUBI>XHIAWYEIDT” in COBOL is expressed by “wk_x16.getWK_OUT OUBI( ).isGreaterThan(xhiarxhi.getXHIAWYEIDT( ))” in Java. Therefore, the readability is spoiled. Moreover, because many statements not related to reviews such as creation of objects and EJB (Enterprise Java Beans) initialization are set forth, these also impede improving the efficiency of reviewing.
Incidentally, automatic generation of specifications is disclosed, for example, in U.S. Pat. No. 5,742,827. That is, the syntax of the input program is analyzed, and the syntactic structure and data attributes are obtained. At the same time, the data flow is analyzed to obtain data flow information. In addition, the names of temporal variables within the program are detected, and data that has inclusion with those temporal variables is detected. Then, the data flows from reference locations to the temporal variables to setting locations of associated variables are traced by the inclusion of data, applications of the temporal variables such as holding of intermediate results of calculations, type conversion, division, composition, and so on are discerned, and those temporal variables which can be erased are deleted. Intermediate representations in which temporal variables have been erased are replaced by natural language descriptions to obtain a specification. However, problems in object-oriented languages as described above are not taken into consideration.
In the aforementioned art, any solution to a problem in which it is difficult to make a review of a program written in a program language such as Java is not described.